iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
AI & Data

利用SeamlessM4T學習語音辨識架構及應用系列 第 10

DAY10 - SeamlessM4T的T2ST功能體驗

  • 分享至 

  • xImage
  •  

T2ST(Text-to-Speech Translation)是文本轉語音的模型,語言可以選擇,不管是輸入及輸出都可以選擇語言,所涵蓋的語言代號請參考連結:SeamlessM4T語言別代號。本篇使用SeamlessM4T的T2ST功能,看看使用流程是否容易上手,以及翻譯結果的準確性。

安裝SeamlessM4T

安裝SeamlessM4T請參考文章安裝SeamlessM4T

使用步驟

先導入模型,本次推出的SeamlessM4T有兩種型號:seamlessM4T_large與seamlessM4T_large。以large版本為例,執行以下程式碼後即已備好模型:

import torch
from seamless_communication.models.inference import Translator

**translator = Translator(
    "seamlessM4T_large",
    "vocoder_36langs",
    torch.device("cuda:0"),
    torch.float16,
)

此步驟的用意為在GPU上初始化一個轉譯器,選用模型"seamlessM4T_large",以及聲碼器"vocoder_36langs",官方建議選擇半精度浮點數(float16)可能是因為要節省記憶體,但可能因此影響翻譯精準度。

將文本丟入模型中,我輸的文字為”今晚想吃什麼?”,設定來源語言為中文(cnm),目標語言為英文(eng)

translated_text, wav, sr = translator.predict(
                "他一聲不吭地走掉了!",
                "t2st",
                src_lang="cmn",
                tgt_lang="eng"
                )

print(translated_text)  #He walked away without a word!

輸出文字為”He walked away without a word!播放,翻譯內容正確,標點符號也正確,不像之前測試中文時,翻譯成中文莫名其妙出現兩個問號。輸出的英語語音如下”He walked away without a word, and so…”除了字面上的意思外,在翻譯英語時自行推測下一句可能會接的詞,語音中出現”and so…”連接詞。

若想將輸出結果儲存為wav檔,執行程式碼如下:

import torchaudio

torchaudio.save("output_t2st.wav", wav[0].cpu(), sample_rate=sr)

若想在Conda環境播放該輸出結果,執行程式碼如下:

from IPython.display import Audio

Audio(wav[0].cpu(), rate=sr)

總結

利用SeamlessM4T的T2ST功能(Text-to-Speech Translation),將輸入文本匯入預備好的轉譯器(Translator),選擇任務t2st,設定目標語言即可做轉譯。本篇使用繁體中文文本轉英語語音,翻譯內容正確,不過比較之下轉譯後的英語語音,口氣通順,且就算輸入文本中沒有連接詞,也會自行預測可能的連接詞;相較之下轉譯後的中文語音,聽起很明顯的機械感,還尚待優化。


上一篇
DAY09 - SeamlessM4T的T2TT功能評測
下一篇
DAY11 - SeamlessM4T的ASR功能使用測試
系列文
利用SeamlessM4T學習語音辨識架構及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言